package com.example.lib_base.widget

import android.content.Context
import android.util.AttributeSet
import android.view.View
import com.example.lib_base.pojo.CircleShapeEntity

/**
 * 自定义扇形:
 *  按提供的数字进行分块
 *  提供点击区域的位置
 *
 *  canvas绘制  drawArc()方法绘制圆弧
 *        public void drawArc(@NonNull RectF oval, float startAngle, float sweepAngle, boolean useCenter,@NonNull Paint paint) {
 *              drawArc(oval.left, oval.top, oval.right, oval.bottom, startAngle, sweepAngle, useCenter,paint);
 *       }
 *       oval :指定圆弧的外轮廓矩形区域
 *       startAngle: 圆弧起始角度，单位为度。
 *       sweepAngle: 圆弧扫过的角度，顺时针方向，单位为度。
 *       useCenter: 如果为True时，在绘制圆弧时将圆心包括在内，通常用来绘制扇形。
 *       paint: 绘制圆弧的画笔属性，如颜色，是否填充等。
 *
 *
 */
class CircleShapeClickView @JvmOverloads constructor(
    context: Context,
    attributeSet: AttributeSet? = null,
    defStyleAttr: Int = 0
) : View(context, attributeSet, defStyleAttr) {

    //默认平分6块
    private var averageCount = 6
    private lateinit var topCount:List<CircleShapeEntity>
    private lateinit var bottomCount:List<CircleShapeEntity>
    //设置间距 5°
    private var spacePadding = 2f

    /**
     * 设置数量，每块的状态颜色,上，下各多少个
     */
    fun setData(dataSize: Int, colors: IntArray, topCount: List<CircleShapeEntity>?=this.topCount, bottomCount:List<CircleShapeEntity>?=this.bottomCount) {
        if (dataSize % averageCount != 0 || colors.size % averageCount != 0) {
            throw IllegalArgumentException("设置的数量暂时为平分的整数")
        }
        if (topCount != null && bottomCount!=null) {
            this.topCount = topCount
            this.bottomCount = bottomCount
            if (dataSize / averageCount != (topCount.size + bottomCount.size)) {
                throw IllegalArgumentException("请核实数据总数是否准确")
            }
        }
        initData(dataSize, colors)
        invalidate()
    }

    private fun initData(dataSize: Int, colors: IntArray) {

    }
}